package handler

import (
	"github.com/gin-gonic/gin"
	"go-task/common"
	"go-task/domain/dto"
	"go-task/domain/model"
)

func Login(c *gin.Context) {
	var loginDTO dto.LoginDTO
	if err := c.ShouldBind(&loginDTO); err != nil {
		common.Fail(c, common.ErrParam)
		return
	}

	// 查询用户是否存在
	user, err := model.GetUser(loginDTO.Username)
	if err != nil {
		common.BizError(c, "用户不存在")
		return
	}

	// 检查密码是否正确
	if !common.CheckPasswordHash(loginDTO.Password, user.Password) {
		common.BizError(c, "密码不正确")
		return
	}

	token := common.GenerateJwt(loginDTO.Username)
	common.OKData(c, token)
}

func Logout(c *gin.Context) {
	// 目前空实现
	common.OK(c)
}
